package br.com.velp.projeto.entidade;

import java.io.Serializable;
import java.util.UUID;

public abstract class EntidadePadrao implements Serializable {

    public abstract Serializable getId();

    public boolean equals(Object obj) {
	
        if (obj == null) {
	    return false;
	}
        
	if (!obj.getClass().equals(this.getClass())) {
	    return false;
	}
        
	EntidadePadrao other = (EntidadePadrao) obj;
        
	if (other.getId() == null && this.getId() == null) {
	    return (obj == this);
	}
        
	if (other.getId() != null && this.getId() == null) {
	    return false;
	}
        
	if (other.getId() == null && this.getId() != null) {
	    return false;
	}
        
        return (other.getId().equals(this.getId()));
        
    }

    @Override
    public int hashCode() {
        
        return UUID.randomUUID().hashCode();
        
    }
    
}
